Στη σημερινή εποχή, περισσότερο από ποτέ, η χρήση των τεχνολογιών του Διαδικτύου παίζει καθοριστικό ρόλο στο επιχειρείν. Αυτό συμβαίνει διότι οι τεχνολογίες αυτές συμβάλλουν στην αντιμετώπιση προβλημάτων που πιθανόν να προκύπτουν από τη γεωγραφική απόσταση με τους πελάτες και τους προμηθευτές μιας επιχείρησης, τη διαρκώς αυξανόμενη ανάγκη προβολής προϊόντων και υπηρεσιών με τον πλέον βέλτιστο και ακριβή τρόπο αλλά και από την ανάγκη για απροβλημάτιστη ανταλλαγή πληροφοριών με τους συνεργάτες της επιχείρησης. Η μετάβαση λοιπόν σε ψηφιακές πλατφόρμες διευρύνει τους ορίζοντες μιας επιχείρησης, καταργεί περιορισμούς και δίνει πρόσβαση σε δυνατότητες που θα ήταν αδύνατον να εκμεταλλευτεί μια εταιρία χωρίς τη χρήση του Διαδικτύου.
Πέρα όμως από τις πολλές δυνατότητες που προσφέρονται με τη χρήση του Διαδικτύου, η μεταφορά του επιχειρείν στο η-επιχειρείν εγείρει και ένα πλήθος από προκλήσεις. Μια ειδικότερη πρόκληση, αφορά την επικοινωνία με πιθανώς ετερογενή συστήματα προμηθευτών και συνεργατών, εφόσον εκεί συχνά παρουσιάζονται προβλήματα ασυμβατότητας. Αυτό συμβαίνει διότι είναι αναγκαία η ανταλλαγή πληροφοριών ανάμεσα σε πλατφόρμες οι οποίες έχουν αναπτυχθεί με διαφορετικές προδιαγραφές και με χρήση διαφορετικών συστημάτων ανάπτυξης. Όπως είναι φυσικό οι πλατφόρμες αυτές δεν μπορούν εκ κατασκευής να αναγνωρίσουν ως είσοδο αρχεία παραγόμενα από τις πλατφόρμες συνεργατών της επιχείρησης. Ειδικότερα σε περιβάλλοντα ηλεκτρονικού εμπορίου (ΗΕ), το πλήθος τέτοιων συστημάτων είναι πολύ ευρύ και ποικίλει από συστήματα ηλεκτρονικών πληρωμών και τραπεζικών συστημάτων, μεταφορικών εταιριών μέχρι και υπηρεσίες ανατροφοδότησης εφοδιαστικής αλυσίδας. Γίνεται λοιπόν εύκολα αντιληπτή η ανάγκη για απρόσκοπτη επικοινωνία ανάμεσα σε αυτά τα συστήματα ΗΕ, ή πιο συγκεκριμένα γίνεται φανερή η ανάγκη για ολοκλήρωση & διαλειτουργικότητα σε συστήματα ΗΕ.
Μια σημαντική προσέγγιση προς αυτή την κατεύθυνση είναι το Enterprise Service Bus (ESB), το οποίο ουσιαστικά είναι μια αρχιτεκτονική λογισμικού η οποία μπορεί να χρησιμοποιηθεί ως ενδιάμεσος (middleware), που θα ενισχύει και θα υποστηρίζει την αλληλεπίδραση σύνθετων αρχιτεκτονικών, απλοποιώντας τις απαιτήσεις των διαφορετικών interfaces ετερογενών συστημάτων. Κάποια από τα πλεονεκτήματα που παρουσιάζει η υιοθέτηση του ESB είναι: •
- Ευελιξία
- Αυτοματοποίηση
η αυξημένη ευελιξία και η δυνατότητα πραγματοποίησης αλλαγών στα πληροφοριακά συστήματα που επικοινωνούν μέσω του ESB, καθώς αυτά μπορούν να προσαρμόζονται ευκολότερα στις απαιτήσεις του επιχειρησιακού περιβάλλοντος, που αλλάζει με ραγδαίους ρυθμούς. |
η δυνατότητα αυτόματης εισαγωγής ή εξαγωγής συστημάτων ΗΕ, αλλά και επεκτάσεων αυτών στη συνολική αρχιτεκτονική με αυτοματοποιημένο τρόπο και χωρίς την ανάγκη παραμετροποιήσεων στον τρόπο επικοινωνίας. |
Σημαντικά συστήματα ESB που χρησιμοποιούνται και σήμερα είναι τα SAP Process Integration, Oracle Enterprise Service Bus (BEA Logic), Mule ESB (Enterprise Edition) αλλά και το open-source λογισμικό Open ESB.
Πώς όμως επιτρέπουν τα συστήματα που βασίζονται στο ESB τη διευκόλυνση των συναλλαγών συστημάτων τα οποία έχουν αναπτυχθεί με χρήση διαφορετικών πλατφόρμων και κάνοντας χρήση διαφορετικών προτύπων; Τα συστήματα ESB επιτρέπουν κάτι τέτοιο καθώς βασίζονται στη χρήση της Αρχιτεκτονικής βασισμένη-σε-Υπηρεσίες (SOA). Η αρχιτεκτονική αυτή επιτρέπει την αντιμετώπιση της τεχνολογικής πρόκλησης της διασύνδεσης ετερογενών συστημάτων και αποτελεί μια αρχιτεκτονική με διαρκώς αυξανόμενη υιοθέτηση από τη βιομηχανία και τις επιχειρήσεις.
2. Αρχιτεκτονική βασισμένη-σε-Υπηρεσίες (SOA): εξέλιξη στοιχείων λογισμικού για κατανεμημένα συστήματα
Η αρχιτεκτονική βασισμένη-σε-Υπηρεσίες (SOA) είναι μια προσέγγιση σχεδιασμού αρχιτεκτονικής λογισμικού, η οποία έχει ως επίκεντρο τις υπηρεσίες (Papazoglou, et al., 2008). Στηρίζεται δηλαδή στην εξής προσέγγιση: τμήματα λογισμικού μπορούν να προσφέρουν τη λειτουργικότητα τους ως υπηρεσία σε άλλα τμήματα λογισμικού ή σε ολοκληρωμένες εφαρμογές. Πιο συγκεκριμένα, ένα σύστημα σχεδιασμένο με SOA δίνει τη δυνατότητα παροχής υπηρεσιών σε χρήστες ή σε άλλες υπηρεσίες στο Διαδίκτυο μέσα από δημοσιευμένες και εύκολα προσβάσιμες διεπαφές. Οι επιχειρήσεις μπορούν να ωφεληθούν από τη σχεδίαση συστημάτων με SOA καθώς αυτά μπορούν να αναπαραστήσουν μεμονωμένες επιχειρηματικές δραστηριότητες σαν υπηρεσίες δίνοντας τη δυνατότητα επαναχρησιμοποίησης αλλά και παραμετροποίησης, κάτι που καθιστά τις επιχειρήσεις ευέλικτες μπροστά σε αλλαγές του περιβάλλοντος στο οποίο δρουν. Η συγκεκριμένη αρχιτεκτονική έκανε την εμφάνιση της στα μέσα της δεκαετίας του 90, λόγω της ανάγκης για διαλειτουργικότητα ανάμεσα σε ετερογενή συστήματα, μια ανάγκη που διογκώθηκε ακόμη περισσότερο λόγω της αναδιάρθρωσης της επιχειρηματικής λογικής πολλών εταιριών και επιχειρήσεων, στην προσπάθεια τους να επιτύχουν την απαιτούμενη ευελιξία. Η αναδιάρθρωση αυτή σήμαινε την ανάθεση ορισμένων λειτουργιών της επιχείρησης σε τρίτους, για την ελαχιστοποίηση του κόστους. Κατ' επέκταση ήταν απαραίτητη η διαλειτουργικότητα και η συνεχής επικοινωνία με το πληροφοριακό σύστημα των εξωτερικών συνεργατών. Η διαλειτουργικότητα αυτή κατέστη δυνατή με τη χρήση της αρχιτεκτονικής SOA.
2.1. Χαλαρή σύζευξη
Οι Υπηρεσίες Ιστού χαρακτηρίζονται από τη λεγόμενη χαλαρή σύζευξη, δηλαδή τη δυνατότητα επικοινωνίας ανάμεσα σε εφαρμογές ή τμήματα λογισμικού, χωρίς να υπάρχει πρότερη γνώση των προδιαγραφών που χαρακτηρίζουν την κάθε εμπλεκόμενη εφαρμογή (Weerawarana et al., 2008).
Σε συστήματα που έχουν αναπτυχθεί με βάση την αρχιτεκτονική SOA, η κυριότερη μέθοδος επικοινωνίας μεταξύ των εφαρμογών είναι με μηνύματα σε μορφή XML. Τα μηνύματα αυτά περιέχουν πληροφορίες σχετικά με κάποια λειτουργία προς εκτέλεση, όπως για παράδειγμα, ποιες εφαρμογές θα συνεργαστούν για αυτόν τον σκοπό και ποια θα είναι τα δεδομένα που θα διαμοιραστούν.
Η χαλαρή σύζευξη λοιπόν επιτρέπει τη διαλειτουργικότητα ανάμεσα σε συστήματα λογισμικού συνεργατών ανεξάρτητα από την πλατφόρμα στην οποία έχει αναπτυχθεί κάθε λογισμικό και τα πρωτόκολλα επικοινωνίας που χρησιμοποιεί. Με τον τρόπο αυτό, οι Υπηρεσίες Ιστού, προσφέρουν σημαντικές επιχειρηματικές ευκαιρίες, κάτι που καθιστά εύκολα κατανοητό τον λόγο για τον οποίο θεωρούνται ιδανικές για επιχειρηματικές συναλλαγές.
2.2. Δημοσίευση, εντοπισμός και σύνδεση σε αρχιτεκτονικές τύπου SOA
Για να λειτουργήσει μια αρχιτεκτονική SOA βασισμένη σε ΥΙ είναι απαραίτητη η ύπαρξη μεθόδων δημοσίευσης, εντοπισμού και σύνδεσης των ΥΙ. Χαρακτηριστικό είναι το σχήμα 9.1 που δείχνει τα τρία βασικά αυτά συστατικά μιας SOA αρχιτεκτονικής, τον τρόπο σύνδεσης τους και τον τρόπο με τον οποίο αυτές επηρεάζουν τους κύριους συμμετέχοντες σε μια συναλλαγή βασισμένη σε μια SOA αρχιτεκτονική.
Σχήμα 9.1 - Το τρίγωνο της αρχιτεκτονικής SOA
2.3. Δημοσίευση
Όταν ένας πάροχος μιας υπηρεσίας θέλει να την καταστήσει διαθέσιμη προς κατανάλωση θα πρέπει να τη δημοσιεύσει σε κάποιο μητρώο ΥΙ (repository). Το δημοφιλέστερο μητρώο ΥΙ είναι το Universal Description, Discovery and Integration (UDDI) μητρώο στο οποίο είναι δυνατή η αποθήκευση πληροφοριών σχετικά με την ΥΙ αλλά και τον ίδιο τον πάροχο. Το UDDI στηρίζεται στη γλώσσα XML και χρησιμοποιείται ως ένα μέσο για την αποθήκευση πληροφοριών σχετικά με ΥΙ ενώ ταυτόχρονα διευκολύνει και τον εντοπισμό τους. Για την περιγραφή των διεπαφών αλλά και στοιχείων σχετικά με τη λειτουργικότητα μιας ΥΙ γίνεται χρήση ενός αρχείου WSDL. Ένα αρχείο WSDL (Web Services Description Language), αποτελεί ουσιαστικά μια περιγραφή μιας ΥΙ σε XML μορφή. Περιγράφει την τοποθεσία της ΥΙ, τις διάφορες λειτουργίες και μεθόδους που αυτή περιέχει, τις αναμενόμενες εισόδους και εξόδους της καθώς και την αναμενόμενη συμπεριφορά της. Δίνει έτσι τη δυνατότητα σε όποιον επιθυμεί να κάνει χρήση αυτής της ΥΙ καθώς θα μπορεί να στείλει τα κατάλληλα μηνύματα που θα ενεργοποιήσουν τις αντίστοιχες μεθόδους. Περισσότερες πληροφορίες για τα αρχεία WSDL θα δοθούν σε επόμενη ενότητα.
2.4. Εντοπισμός
Οι ίδιοι μηχανισμοί είναι αυτοί που βοηθούν τον εντοπισμό τον υπηρεσιών από τους ενδιαφερόμενους clients. Όπως είδαμε προηγουμένως, για την περιγραφή και τη δημοσίευση των λειτουργιών μιας ΥΙ γίνεται χρήση της γλώσσας WSDL. Όταν λοιπόν ένας χρήστης κάνει αναζήτηση για κάποια υπηρεσία, η οποία να ικανοποιεί τα λειτουργικά κριτήρια που επιθυμεί, απευθύνεται συνήθως σε κάποιο ειδικό μητρώο (μέ χρήση πχ. του πρωτοκόλλου UDDI). Καθώς ένα τέτοιο μητρώο, μέσω της υλικοτεχνικής υποδομής του, προσφέρει τη δυνατότητα αποθήκευσης πληροφοριών για διαθέσιμες ΥΙ και για τους παρόχους τους, μέσω WSDL αρχείων, είναι δυνατή και ταυτόχρονα εύκολη η ανακάλυψη και η πρόσβαση σε αυτές.
2.5. Σύνδεση
Αφού ένας client έχει εντοπίσει μέσω UDDI την ΥΙ που επιθυμεί να χρησιμοποιήσει, θα πρέπει να πραγματοποιήσει τη σύνδεση του με αυτή. Η σύνδεση πραγματοποιείται με βάση τις προδιαγραφές μηνυμάτων και τις πληροφορίες πρωτοκόλλων που αναφέρονται ρητά στο WSDL αρχείο της υπηρεσίας. Το αρχείο αυτό, όπως έχει ήδη αναφερθεί, περιγράφει την ΥΙ και τις διεπαφές (interfaces) της. Ένα παράδειγμα περιγραφής προδιαγραφών βασισμένο στην έκδοση SOAP 1.2 δίνεται παρακάτω:
<binding name="SimpeE-CommerceBind" type="tns:SimpleE-Commerce"> <soap12:binding transport=http://schemas.xmlsoap.org/soap/http style="document" /> <operation name="ViewProduct"> <soap12:operation soapAction=http://example.org/ViewProduct soapActionRequired="true" style="rpc" /> <input> <soap12:body use="encoded" namespace=http://example.org/ encodingStyle="http://www.w3.org/2001/12/soap-encoding" /> </input> <output> <soap12:body use="encoded" namespace=http://example.org/ encodingStyle="http://www.w3.org/2001/12/soap-encoding" /> </output> </operation> </binding>
Η παραπάνω προδιαγραφή ορίζει τον τρόπο με τον οποίο θα πρέπει να γίνεται η σύνδεση και η ανταλλαγή μηνυμάτων μέσω SOAP για μια απλή υπηρεσία ΗΕ. Ιδιαίτερη σημασία έχει η παράμετρος "transport", η οποία ορίζει το πρωτόκολλο επιπέδου εφαρμογής που θα χρησιμοποιηθεί για την εκπομπή των μηνυμάτων. Όπως θα δούμε στην επόμενη ενότητα, τα πιο συχνά χρησιμοποιούμενα πρωτόκολλα είναι τα Hypertext Transfer Protocol (HTTP) και Simple Mail Transfer Protocol (SMTP). Στο συγκεκριμένο παράδειγμα, γίνεται χρήση του πρωτοκόλλου HTTP.
3. SOAP-based Υπηρεσίες Ιστού: Αρχιτεκτονική Πλατφόρμας Υπηρεσιών Ιστού (Web Services)
Με τον όρο Υπηρεσίες Ιστού, αναφερόμαστε σε μια υλοποίηση της αρχιτεκτονικής SOA που αναφέρθηκε προηγουμένως. Συγκεκριμένα, αποτελεί μια μέθοδο διαλειτουργικής επικοινωνίας μεταξύ ηλεκτρονικών συσκευών και εφαρμογών μέσω ενός δικτύου, και ακόμα ειδικότερα μια επικοινωνία τύπου μηχανής-προς-μηχανή. Καθώς οι ΥΙ αποτελούν μια αρχιτεκτονική ανταλλαγής μηνυμάτων, η οποία βασίζεται στη διαλειτουργικότητα και η οποία δε στηρίζεται σε συγκεκριμένα πρωτόκολλα μεταφοράς για τη μεταφορά μηνυμάτων κατά τη χρήση ΥΙ μπορούν να αξιοποιηθούν πολλά γνωστά πρωτόκολλα. Όπως έχει ήδη αναφερθεί τα πιο συχνά χρησιμοποιούμενα πρωτόκολλα είναι τα Hypertext Transfer Protocol (HTTP και HTTPS) και Simple Mail Transfer Protocol (SMTP).
Μια πολύ βασική κατηγορία ΥΙ είναι οι βασισμένες σε SOAP μηνύματα ΥΙ ή αλλιώς WS-* YI. Η ονομασία προκύπτει λόγω του γεγονότος πως στηρίζονται στην ανταλλαγή μηνυμάτων μέσω του πρωτοκόλλου Simple Object Access Protocol (SOAP). Το SOAP σαν μέσο μετάδοσης πληροφορίας επιτρέπει τη διαλειτουργικότητα ανάμεσα σε εξυπηρετητές (servers) και πελάτες (clients), κατά βάση με χρήση μεθόδων RPC(remote procedure calls), μέσω της ανταλλαγής δομημένων μηνυμάτων XML. Περισσότερες πληροφορίες για το πρωτόκολλο SOAP θα δοθούν στην επόμενη υποενότητα.
Πρέπει να αναφερθεί πως οι Υπηρεσίες Ιστού τύπου SOAP θεωρούνται πολύ αξιόπιστες, αφού προσφέρουν τα μέσα για ασύγχρονη επεξεργασία και επιπρόσθετα παρέχουν τη δυνατότητα ανταλλαγής της τρέχουσας κατάστασης των λειτουργιών ανάμεσα στον πελάτη και τον εξυπηρετητή που προσφέρει την Υπηρεσία (Pimenidis, 2010).
Το παρακάτω σχήμα φανερώνει συνοπτικά τα επίπεδα της αρχιτεκτονικής SOA, και συγκεκριμένα τα πρωτόκολλα, τις γλώσσες και τις προδιαγραφές που σχετίζονται με τις ΥΙ τύπου WS-* (Weerawarana et.al, 2008).
Σχήμα 9.2 – Τα επίπεδα της αρχιτεκτονικής SOA
3.1. Περιγραφή πρωτοκόλλου SOAP
Το πρωτόκολλο SOAP σχεδιάστηκε το 1998 από τους Dave Winer, Don Box, Bob Atkinson και Mohsen Al-Ghosein για λογαριασμό της Microsoft. Τα αρχικά SOAP αντιστοιχούσαν στον όρο Simple Object Access Protocol, ο οποίος όμως όρος σταμάτησε να χρησιμοποιείται από την έκδοση 1.2.
Το πρωτόκολλο SOAP επιτρέπει την ανταλλαγή μηνυμάτων μεταξύ ΥΙ. Τα μηνύματα αυτά χαρακτηρίζονται από την ύπαρξη συγκεκριμένης δομής που βασίζεται στη γλώσσα XML. Με τη χρήση του πρωτοκόλλου SOAP, μειώνεται η πολυπλοκότητα (και κατ' επέκταση το απαιτούμενο κόστος) της επικοινωνίας των ετερογενών συστημάτων.
Κάθε SOAP μήνυμα αποτελείται από τρία συστατικά μέλη: •
- Τον περιβάλλοντα φάκελο (envelope)
- Την κεφαλίδα (header)
- Το σώμα (body)
Ο περιβάλλοντας φάκελος ορίζει τη δομή του μηνύματος και τον τρόπο επεξεργασίας του. Η κεφαλίδα περιέχει πληροφορίες σχετικά με την εφαρμογή, όπως πληροφορίες σχετικές με συναλλαγές, πληρωμές, κτλ. Επιπρόσθετα, στην κεφαλίδα μπορούν να οριστούν στοιχεία που καθορίζουν τον τρόπο δρομολόγησης του μηνύματος, ενώ αποτελεί παράλληλα και το σημείο στο οποίο πρέπει να αναφέρεται η προσθήκη επεκτάσιμων λειτουργιών στο SOAP. Στο σώμα του μηνύματος αποθηκεύεται το περιεχόμενο του μηνύματος που πρέπει να ληφθεί και να υποστεί επεξεργασία από τον παραλήπτη. Αποτελεί ουσιαστικά το λεγόμενο ωφέλιμο φορτίο (payload) του μηνύματος, τη χρήσιμη δηλαδή πληροφορία.
Ένα παράδειγμα SOAP μηνύματος, όπου διακρίνονται χαρακτηριστικά τα κυρίως συστατικά μέρη του, είναι το παρακάτω:
<?xml version="1.0"?>
<soap:Envelope>
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:body pb="http://www.example.uom.gr/members">
<pb:GetPriceDetails>
<pb:ProductID>2</pb:ProductID>
</pb:GetPriceDetails>
</soap:Body>
</soap:Envelope>
Μετά τη λήψη του παραπάνω SOAP μηνύματος, και την επεξεργασία των πληροφοριών που περιέχονται στο κυρίως σώμα (body), δηλαδή του ωφέλιμου φορτίου, η απάντηση ενός εξυπηρετητή, μπορεί να είναι της μορφής:
<?xml version="1.0"?>
<soap:Envelope>
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:body pb="http://www.example.uom.gr/members">
<pb:GetPriceDetailsResponse>
<pb:Price>100</pb: Price >
</pb:GetPriceDetailsResponse>
</soap:Body>
</soap:Envelope>
3.2. Διευθυνσιοδότηση-ΥΙ
Η Διευθυνσιοδότηση-ΥΙ (WS-Addressing) αποτελεί την περιγραφή ενός μηχανισμού που επιτρέπει την ανταλλαγή πληροφοριών προσδιορισμού, σχετικά με τα εμπλεκόμενα μέλη κατά τη διάρκεια ανταλλαγής μηνυμάτων από ΥΙ. Αυτό είναι εφικτό καθώς η περιγραφή ορίζει συγκεκριμένα XML στοιχεία τα οποία χρησιμοποιούνται για την αναφορά ακραίων σημείων (endpoints) δηλαδή σημείων στα οποία μπορεί να στοχεύσει ένα μήνυμα ΥΙ. Η περιγραφή αυτή είναι ανεξάρτητη από το μέσο μεταφοράς του μηνύματος, κάτι που προσφέρει ευελιξία στην ανταλλαγή τέτοιων πληροφοριών.
Ουσιαστικά, με τη χρήση της Διευθυνσιοδότησης-ΥΙ διαχωρίζεται η λογική της περιγραφής των εμπλεκόμενων μελών μιας επικοινωνίας από το μέσο επικοινωνίας, καθώς οι πληροφορίες διευθυνσιοδότησης όπως είναι ο αποστολέας, ο παραλήπτης κ.τ.λ. αποθηκεύονται στην κεφαλίδα του SOAP μηνύματος. Καθώς η κεφαλίδα θα περιέχει τα απαραίτητα μεταδεδομένα σχετικά με τη διευθυνσιοδότηση του μηνύματος, το μέσο μετάδοσης σε επίπεδο δικτύου είναι υπεύθυνο μόνο για την παράδοση του μηνύματος σε έναν dispatcher ικανό να επεξεργαστεί τα μεταδεδομένα αυτά.
3.3. WSDL
Η γλώσσα Περιγραφής Υπηρεσιών Ιστού (WSDL), είναι μια γλώσσα βασισμένη στην XML η οποία επιτρέπει την περιγραφή διεπαφών. Συγκεκριμένα περιγράφει τις ΥΙ ως σύνολα ακραίων σημείων, με τα οποία είναι δυνατή η αλληλεπίδραση. Χρησιμοποιείται για την περιγραφή των λειτουργικών χαρακτηριστικών που προσφέρονται από μια ΥΙ. Με τη χρήση μεταδεδομένων επιτρέπει την περιγραφή ΥΙ ανεξαρτήτως της πλατφόρμας ανάπτυξης της.
Όταν αναφερόμαστε σε ένα αρχείο WSDL εννοούμε μια περιγραφή μιας ΥΙ σε μια μορφή την οποία μπορεί να επεξεργαστεί από μια μηχανή (π.χ μια μηχανή σύνθεσης ΥΙ), και η οποία περιλαμβάνει πληροφορίες σχετικά με: •
- Την τοποθεσία της ΥΙ (π.χ. πληροφορίες για τον πάροχο της αλλά και το μητρώο στο οποίο βρίσκεται)
- Τα λειτουργικά χαρακτηριστικά της
- Τις αναμενόμενες εισόδους που μπορεί να λάβει•
- Την αναμενόμενη συμπεριφορά της για δεδομένες εισόδους•
- Τις αναμενόμενες εξόδους που μπορεί να δώσει
- Τις μεθόδους που αυτή περιέχει
Η τρέχουσα έκδοση της γλώσσας WSDL είναι η έκδοση 2.0. Σε αντίθεση με την έκδοση 1.1., επιτρέπει την περιγραφή συνδέσεων με όλες τις HTTP μεθόδους (GET, POST, PUT, UPDATE) και όχι μόνο με τις μεθόδους GET και POST. Με τον τρόπο αυτό, πέρα από την υποστήριξη των ΥΙ βασισμένων στο SOAP, επιτρέπει την καλύτερη υποστήριξη RESTful ΥΙ, που βασίζονται σε μια ολοένα και δημοφιλέστερη αρχιτεκτονική και στις οποίες θα αναφερθούμε στη συνέχεια αυτού του κεφαλαίου.
4. Συναλλαγές Υπηρεσιών Ιστού
Για τα ζητήματα ποιότητας ΥΙ, όπως φαίνεται και στο σχήμα 9.2, ένας παράγοντας ιδιάζουσας σημασίας αποτελεί το ζήτημα των συναλλαγών ΥΙ. Όπως έχει αναφερθεί, οι ΥΙ έχουν αλλάξει τον τρόπο με τον οποίο ετερογενή συστήματα αλληλεπιδρούν παρέχοντας μηχανισμούς διαλειτουργικότητας. Παρά ταύτα, είναι απαραίτητη η ύπαρξη ενός μηχανισμού με τον οποίο θα εξασφαλίζεται η συνεκτικότητα και η αξιοπιστία των εφαρμογών που στηρίζονται στις ΥΙ. Ένας τέτοιος μηχανισμός είναι οι συναλλαγές ΥΙ, καθώς αυτές εξασφαλίζουν πως τα αποτελέσματα της χρήσης κατανεμημένων και βασισμένων-στις-ΥΙ εφαρμογών, θα είναι αυτά στα οποία είχαν εξ' αρχής συμφωνήσει οι συμμετέχοντες. Οι ιδιότητες που παρέχονται από τις συναλλαγές ΥΙ, οι οποίες συχνά αναφέρονται ως ACID είναι οι ακόλουθες:
- Ατομικότητα (Atomicity)
- Συνέπεια (Consistency)
- Απομόνωση (Isolation)
- Διάρκεια (Durability)
Σε περίπτωση επιτυχίας της συναλλαγής, όλες οι ενέργειες της εφαρμογής εκτελούνται, ενώ σε αντίθετη περίπτωση δεν εκτελείται καμία ενέργεια. |
Τα αποτελέσματα της εφαρμογής χαρακτηρίζονται από συνέπεια και η εφαρμογή επιτελεί ορθές μεταβάσεις καταστάσεων κατά την ολοκλήρωση της. |
Μέχρι την ολοκλήρωση της συναλλαγής και την παραγωγή της τελικής απάντησης μιας εφαρμογής, μεσολαβούν ενδιάμεσες καταστάσεις. Αυτές, εξασφαλίζεται πως, δεν είναι ορατές από τρίτους ή από άλλες συναλλαγές. Επιπρόσθετα, οι χρησιμοποιούμενοι πόροι μιας συναλλαγής δεν είναι διαθέσιμοι σε άλλες συναλλαγές μέχρι το πέρας της τρέχουσας συναλλαγής. |
Αφότου έχει ολοκληρωθεί μια συναλλαγή, οι αλλαγές που έχει προκαλέσει διατηρούνται ακόμα και αν υπάρξει σφάλμα σε επόμενες ενέργειες. |
Όπως θα γίνει φανερό σε επόμενο κεφάλαιο, θεμελιώδης σημασίας για την παροχή ΥΙ προστιθέμενης αξίας είναι η σύνθεση ΥΙ. Καθώς όμως πραγματοποιούνται συναλλαγές με χρήση συνθέσεων ΥΙ, εγείρονται ζητήματα σχετικά με το κατά πόσο θα πρέπει οι ιδιότητες ACID να εφαρμόζονται με την ίδια αυστηρότητα. Ο λόγος είναι πως τα συστατικά μέλη μιας σύνθεσης ΥΙ είναι χαλαρά συνδεδεμένες, κατανεμημένες ΥΙ των οποίων η αλληλεπίδραση δημιουργεί την ανάγκη για πιο ευέλικτες ιδιότητες συναλλαγών. Η χρήση των προδιαγραφών Συντονισμού ΥΙ, Ατομικής Συναλλαγής ΥΙ και Επιχειρηματικής Δραστηριότητας ΥΙ εξασφαλίζει την εφαρμογή ενός συνόλου πρωτοκόλλων που επιτρέπουν αυτή την ευελιξία στις συναλλαγές με χρήση ΥΙ.
4.1. Συντονισμός ΥΙ
Ο Συντονισμός ΥΙ αποτελεί μια προδιαγραφή, η οποία περιγράφει τις λειτουργίες οριοθέτησης μιας δραστηριότητας και συγκεκριμένα περιγράφει τα ακόλουθα στοιχεία:
- Ενεργοποίηση - Αφορά τη δημιουργία μιας νέας δραστηριότητας και τη θέσπιση του θεματικού πλαισίου της.
- Θεματικό πλαίσιο - Μέσω του θεματικού πλαισίου καθορίζεται η λειτουργία της δραστηριότητας, λαμβάνοντας υπόψη τις λειτουργίες που έχουν καθοριστεί στην εμβέλεια της. Περιέχει πληροφορίες όπως ένα αναγνωριστικό, τη χρονική στιγμή λήξης της προθεσμίας για την ολοκλήρωση μιας δραστηριότητας, τον τύπο συντονισμού, την υπηρεσία εγγραφής αλλά και στοιχεία για πιθανές επεκτάσεις λειτουργιών.
- Εγγραφή - Με την εγγραφή, μια ΥΙ δηλώνει πως συμμετέχει στην απαραίτητη επεξεργασία της δραστηριότητας προκειμένου αυτή να ολοκληρωθεί.
- Πρωτόκολλο συντονισμού - Αφορά στον τρόπο επεξεργασίας των δραστηριοτήτων, έτσι ώστε αυτές να ολοκληρωθούν. Παραδείγματα πρωτοκόλλων συντονισμού είναι η Ατομική Συναλλαγή και η Επιχειρηματική Δραστηριότητα ΥΙ που θα περιγραφούν παρακάτω.
4.2. Ατομική Συναλλαγή ΥΙ
Το πρωτόκολλο Ατομικής Συναλλαγής ΥΙ στηρίζεται στις ιδιότητες ACID και ορίζει πως η ολοκλήρωση μιας συναλλαγής θα γίνει ομοιόμορφα για όλους τους συμμετέχοντες. Κατά την εκτέλεση μιας συναλλαγής και σε περίπτωση που μια δραστηριότητα είναι επιτυχής, δίνεται ένα σήμα Commit από την εφαρμογή έτσι ώστε η συναλλαγή να ολοκληρωθεί. Σε αντίθετη περίπτωση δίνεται ένα σήμα Rollback και καμία αλλαγή δε λαμβάνει θέση. Συγκεκριμένα μετά την ολοκλήρωση της οποιασδήποτε δραστηριότητας σε επίπεδο εφαρμογής, δίνεται εντολή στον συντονιστή της συναλλαγής να εκτελέσει τη λειτουργία commit (δέσμευση) και με τον τρόπο αυτό να οριστεί ότι η συναλλαγή ολοκληρώνεται με επιτυχία (Weerawarana et al., 2008).
Κάντε κλικ για επανάληψη της κίνησης στην παρακάτω εικόνα:
Σε αντίθετη περίπτωση υπάρχει ανεπιτυχής συναλλαγή όπως φαίνεται στο παρακάτω σχήμα:
Σχήμα 9.4 Ανεπιτυχής συναλλαγή
Διαφορετικά, σε περίπτωση σφάλματος σε επίπεδο εφαρμογής έχουμε ανεπιτυχή συναλλαγή λόγω αστοχίας εφαρμογής, όπως φαίνεται στο σχήμα 9.5
Σχήμα 9.5 Ανεπιτυχής συναλλαγή λόγω αστοχίας εφαρμογής
Για την ολοκλήρωση συναλλαγών ατομικού τύπου χρησιμοποιείται το Σταθερό Πρωτόκολλο Δέσμευσης Δύο Φάσεων (Durable Two-Phase Commit). Ένα σενάριο επιτυχούς έκβασης ατομικής συναλλαγής μέσω του συγκεκριμένου πρωτοκόλλου φαίνεται στο επόμενο σχήμα:
Κάντε κλικ για επανάληψη της κίνησης στην παρακάτω εικόνα:
Σχήμα 9.6 Επιτυχής δέσμευση, μέσω σταθερού πρωτοκόλλου δύο φάσεων
Αρχικά, ο συντονιστής στέλνει ένα σήμα prepare σε όλους τους συμμετέχοντες. Σε περίπτωση που όλοι οι συμμετέχοντες στείλουν σήμα prepared, ο συντονιστής στέλνει σε όλους το σήμα commit, σηματοδοτώντας την επιτυχή έκβαση του πρώτου σκέλους της συναλλαγής. Σε αυτό το σημείο, όλοι οι συμμετέχοντες στέλνουν σήμα commited ως επιβεβαίωση.
Σε περίπτωση που τουλάχιστον ένας συμμετέχων σε μια συναλλαγή δώσει σήμα aborted στον συντονιστή, αυτός ενημερώνει τους υπόλοιπους συμμετέχοντες για την ανεπιτυχή έκβαση της συναλλαγής στέλνοντας σήμα Rollback. Ως επιβεβαίωση λήψης αυτού του σήματος και οι υπόλοιποι συμμετέχοντες στέλνουν σήμα Aborted.
Σχήμα 9.7 Ανεπιτυχής δέσμευση, μέσω σταθερού πρωτοκόλλου δύο φάσεων
Τέλος, αξίζει να αναφερθεί πως υπάρχει ένα ακόμη πρωτόκολλο που περιγράφεται στην προδιαγραφή Ατομική Συναλλαγή ΥΙ, το Ασταθές Σταθερό Πρωτόκολλο Δέσμευσης Δύο Φάσεων. Το συγκεκριμένο πρωτόκολλο υιοθετεί τη χρήση προσωρινής μνήμης για την αποθήκευση πληροφοριών, με σκοπό τη βελτίωση της απόδοσης.
4.3. Επιχειρηματική Δραστηριότητα ΥΙ
Σε εφαρμογές ηλεκτρονικού επιχειρείν που αφορούν σενάρια B2B, υπάρχει η απαίτηση για την ομαλή εκτέλεση των συναλλαγών και την παροχή εγγυήσεων για αυτή. Ταυτόχρονα, η αυξημένη πολυπλοκότητα των B2B συναλλαγών σε συνδυασμό με την ύπαρξη πολλαπλών διασυνδεδεμένων ετερογενών συστημάτων καθιστά αδύνατη τη χρήση ατομικών συναλλαγών. Για τον λόγο αυτό έχει αναπτυχθεί το πρότυπο της Επιχειρηματικής-Δραστηριότητας ΥΙ (Weerawarana et al., 2008). Μια εφαρμογή που υιοθετεί το συγκεκριμένο πρότυπο μπορεί να χωριστεί στις λεγόμενες «εμβέλειες», δηλαδή σε συλλογές λειτουργιών ΥΙ. Οι εμβέλειες αυτές, οι οποίες χαρακτηρίζονται από σχέσης γονέα-παιδιού, δίνουν στις επιχειρηματικές συναλλαγές επιπρόσθετες δυνατότητες, καθώς επιτρέπουν τη λήψη αποφάσεων σε επίπεδο επιχείρησης. Συγκεκριμένα, δύο σημαντικές δυνατότητες που προσφέρουν περιγράφονται παρακάτω:
Απομόνωση αστοχιών - Σε περίπτωση που ένα σύνολο λειτουργιών ΥΙ επιστρέψει μήνυμα ανεπιτυχούς έκβασης, είναι δυνατό η αστοχία αυτή να απομονωθεί και να μην επηρεάσει την εσωτερική εμβέλεια. Κάτι τέτοιο καθιστά εφικτή τη μη ακύρωση των ενεργειών που έχουν εκτελεστεί μέχρι τη δεδομένη εκείνη στιγμή.
Τμηματικότητα - Αφορά στον σωστό καταμερισμό των εργασιών σε εμβέλειες, με τέτοιο τρόπο ώστε δραστηριότητες που βρίσκονται έξω από τα πλαίσια της επιχείρησης να μπορούν να εκτελεστούν μέσω μηχανισμών ροής εργασιών. Παράλληλα, αφορά στον ορισμό των ένθετων εμβελειών, δηλαδή εμβελειών που αρχικοποιούνται μέσα στη ροή εξωτερικών εμβελειών, και στις οποίες σχηματίζονται σχέσεις γονέα-παιδιού.
Στο πρότυπο της Επιχειρηματικής-Δραστηριότητας ΥΙ, όταν μια εμβέλεια-παιδί ολοκληρώνεται, στέλνει μήνυμα ολοκλήρωσης στην εμβέλεια-γονέα. Σε αντίθεση με τις Ατομικές Συναλλαγές ΥΙ, υπάρχει η δυνατότητα αντιστάθμισης από τον γονέα, δηλαδή της αναστροφής της λειτουργίας που επιτέλεσε η εμβέλεια-παιδί.
Δύο σημαντικά πρωτόκολλα του προτύπου Επιχειρηματικής-Δραστηριότητας ΥΙ, είναι τα παρακάτω:
- Επιχειρηματική Συμφωνία με Ολοκλήρωση από τους Συμμετέχοντες (Business Agreement with Participant Completion)
- Επιχειρηματική Συμφωνία με Ολοκλήρωση από τον Συντονιστή (Business Agreement with Coordinator Completion)
4.3.1 Επιχειρηματική Συμφωνία με Ολοκλήρωση από τους Συμμετέχοντες
Σε αυτό το πρωτόκολλο δημιουργείται μια θυγατρική δραστηριότητα, η οποία πρέπει να έχει τη δυνατότητα να επιτελέσει την αντιστάθμιση των ενεργειών που εκτελέστηκαν. Συγκεκριμένα με την ολοκλήρωση της, στέλνει ένα μήνυμα Completed προς τη δραστηριότητα-γονέα και αναμένει τη λήψη μηνύματος που θα την πληροφορήσει για την έκβαση της επιχειρηματικής δραστηριότητας. Σε περίπτωση που λάβει μήνυμα Close αυτό θα σημαίνει την επιτυχή ολοκλήρωση της επιχειρηματικής δραστηριότητας, κάτι που σημαίνει πως δεν απαιτούνται πρόσθετες ενέργειες από μέρους της. Σε περίπτωση του λάβει μήνυμα Compensate η θυγατρική δραστηριότητα θα πρέπει να αντιστρέψει τα αποτελέσματα των ενεργειών που έχει επιτελέσει.
Στο παρακάτω σχήμα φαίνονται περιγραφικά διαφορετικά σενάρια εκτέλεσης επιχειρηματικών συμφωνιών με ολοκλήρωση από τους συμμετέχοντες. Συγκεκριμένα φαίνονται τα παρακάτω τρία σενάρια:
- Επιτυχής έκβαση μιας επιχειρηματικής συμφωνίας - ολοκλήρωση από τους συμμετέχοντες.
- Ανεπιτυχής έκβαση μιας επιχειρηματικής συμφωνίας - ολοκλήρωση από τους συμμετέχοντες.
- Έξοδος συμμετέχοντος από επιχειρηματική συμφωνία.
Στο παρακάτω σχήμα επιλέξτε μια από τις τρεις καρτέλες
Σχήμα 9.8 Σενάρια εκτέλεσης επιχειρηματικών συμφωνιών
4.3.2. Επιχειρηματική Συμφωνία με Ολοκλήρωση από το Συντονιστή
Η κυρίαρχη διαφορά αυτού του πρωτοκόλλου σε σχέση με το πρωτόκολλο ολοκλήρωσης από τους συμμετέχοντες εντοπίζεται στο γεγονός πως μια θυγατρική διαδικασία δεν έχει τη δυνατότητα να τερματίσει τη συμμετοχή της στην επιχειρηματική δραστηριότητα αυτοβούλως. Αντιθέτως, η συγκεκριμένη διαδικασία αναμένει ένα μήνυμα Complete από τη διαδικασία γονέα, η οποία σημαίνει και την επιτυχή λήψη όλων των αιτήσεων για την εκτέλεση μιας συγκεκριμένης εργασίας.
Το σχήμα 9.9 παρουσιάζει ένα σενάριο εκτέλεσης επιχειρηματικών συμφωνιών με ολοκλήρωση από τον συντονιστή.
5. Ασφάλεια Υπηρεσιών Ιστού
Μια ακόμη σημαντική παράμετρος σε ζητήματα ποιότητας ΥΙ αποτελεί η ασφάλεια ΥΙ. Στα πλαίσια της διασφάλισης των ΥΙ, έχει οριστεί ένα σύνολο από πρωτόκολλα και προδιαγραφές, που έχει ως στόχο τη διασφάλιση των συναλλαγών που πραγματοποιούνται με χρήση ΥΙ, και ειδικότερα την αντιμετώπιση κινδύνων που μπορούν να προκληθούν από εξωτερικούς κακοπροαίρετους χρήστες. Πιθανοί κίνδυνοι προκύπτουν από επιθέσεις ασφαλείας οι οποίοι εστιάζουν είτε στην ΥΙ και σε πιθανές αδυναμίες της είτε στο δίκτυο που χρησιμοποιείται για τη διεξαγωγή των συναλλαγών.
Παραδείγματα τέτοιων επιθέσεων αποτελούν οι υποκλοπές αλλά και οι τροποποιήσεις μηνυμάτων, ζητήματα σχετικά με την αυθεντικοποίηση χρηστών που συμμετέχουν σε μια συναλλαγή αλλά και οι μαζικές επιθέσεις κατά των δικτύων, οι γνωστές επιθέσεις κατανεμημένης άρνησης παροχής υπηρεσιών (Distributed Denial of Service-DDoS).
Το σύνολο των προδιαγραφών ασφαλείας φαίνονται στο παρακάτω σχήμα (Weerawarana et al., 2008):
5.1. Ασφάλεια ΥΙ
Η ασφάλεια ΥΙ έχει εκδοθεί από την OASIS και η τωρινή της έκδοση είναι η 1.1.1. Περιέχει οδηγίες γνωστές ως SOAP message security, οι οποίες περιγράφουν τρεις κύριους μηχανισμούς:
- Την υπογραφή μηνυμάτων SOAP για την εξασφάλιση της ακεραιότητας. Με τον τρόπο αυτό εξασφαλίζεται πως τα μηνύματα δεν τροποποιούνται από μη-εξουσιοδοτημένους χρήστες.
- Την κρυπτογράφηση των SOAP μηνυμάτων για τη διασφάλιση της εμπιστευτικότητας. Με τον τρόπο αυτό εξασφαλίζεται πως μόνο ο τελικός παραλήπτης του μηνύματος θα είναι σε θέση να δει το περιεχόμενο του μηνύματος.
- Την χρήση tokens ασφαλείας για την πιστοποίηση της ταυτότητας του αποστολέα. Είναι απαραίτητη προϋπόθεση για την ασφαλή επικοινωνία το να γνωρίζει ο παραλήπτης την προέλευση ενός μηνύματος SOAP. Παραδείγματα tokens ασφαλείας που υποστηρίζονται αποτελούν τα πιστοποιητικά X.509 και τα Kerberos tickets.
5.2. Εμπιστοσύνη ΥΙ
Η Eμπιστοσύνη ΥΙ παρέχει επεκτάσεις στο πρωτόκολλο της Ασφάλειας ΥΙ και αποτελεί ένα standard της OASIS. Καθώς η εμπιστοσύνη αποτελεί το θεμελιώδη λίθο για την εγκαθίδρυση της ασφάλειας είναι απαραίτητη η εξασφάλιση της σε κάθε συναλλαγή που κάνει χρήση ΥΙ.
Πριν από τη χρήση μιας ΥΙ, ο τελικός χρήστης ελέγχει τα πρωτόκολλα και τις δηλώσεις Πολιτικής Ασφάλειας ΥΙ του παρόχου της ΥΙ. Για τη χρήση της πρέπει να υπάρχει συμφωνία στα λεγόμενα δελτία ασφαλείας που χρησιμοποιεί η ΥΙ, τα οποία πρέπει να κατέχει και ο χρήστης. Σε περίπτωση που δεν τα κατέχει θα πρέπει να τα προμηθευτεί από έναν Security Token Server (διακομιστή δελτίων ασφαλείας) ο οποίος να θεωρείται έμπιστος από τον πάροχο της ΥΙ. Η ύπαρξη αυτών των δελτίων εξασφαλίζει την εμπιστοσύνη ανάμεσα στον πάροχο της ΥΙ και τον τελικό χρήστη. Επιπρόσθετα, η Εμπιστοσύνη ΥΙ περιγράφει τη δομή των μηνυμάτων αίτησης δελτίων ασφαλείας αλλά και τον τρόπο ανταλλαγής κλειδιών ανάμεσα στους εμπλεκόμενους μιας συναλλαγής.
Σε σχέση με τα προαναφερθέντα δελτία ασφάλειας η Εμπιστοσύνη ΥΙ βασίζεται σε τρεις λειτουργίες:
- Έκδοση (Issuance) - Αφορά στην έκδοση ενός νέου δελτίου ασφαλείας
- Ανανέωση (Renewal) - Αφορά στην ανανέωση της ισχύς ενός υπάρχοντος δελτίου ασφαλείας
- Επικύρωση (Validation) - Αφορά στην επικύρωση ενός δελτίου ασφαλείας ως προς τη συμμόρφωση του με τις πολιτικές του παρόχου της ΥΙ.
6. REST Υπηρεσίες Ιστού
Η αρχιτεκτονική Representational State Transfer (REST), είναι μια service-oriented αρχιτεκτονική για κατανεμημένα συστήματα. Η αρχιτεκτονική REST ορίζει συγκεκριμένες αρχές για τον σχεδιασμό ΥΙ, με βάση τους πόρους (resources) και τις αναπαραστάσεις τους (representations), και έχει σαν στόχο την απροβλημάτιστη διαλειτουργικότητα ετερογενών συστημάτων χαλαρής ζεύξης (Fielding, 2000).
Με τον όρο resource μπορεί να χαρακτηριστεί οποιαδήποτε πληροφορία ή έννοια. Έτσι, σε συστήματα ηλεκτρονικού εμπορίου, ως resource μπορούμε να χαρακτηρίσουμε μια παραγγελία, ένα σύνολο παραγγελιών (πχ. το ιστορικό ενός πελάτη) , έναν συγκεκριμένο χρήστη, ένα προϊόν κ.α.
Ωστόσο, ενώ resource μπορεί να είναι οποιαδήποτε πληροφορία ή έννοια, η αναπαράσταση αυτής (representation) είναι το έγγραφο ή το αρχείο συγκεκριμένης μορφοποίησης που περιγράφει την τρέχουσα κατάσταση του resource (Pautasso, 2014). Για κάθε resource είναι δυνατό να υπάρχουν πολλές διαφορετικές αναπαραστάσεις, όπου οι πιο συχνά χρησιμοποιούμενες είναι οι απλές HTML σελίδες και οι σελίδες που ακολουθούν τις μορφοποιήσεις XML και JSON. Αυτό επιτρέπει σε κάθε πελάτη να μπορεί κατά την αποστολή ενός αιτήματος για την τρέχουσα κατάσταση ενός πόρου, να ζητήσει και συγκεκριμένη μορφοποίηση για την επιστρεφόμενη αναπαράσταση. Βεβαίως υπάρχει περίπτωση ο εξυπηρετητής να μην μπορεί να επιστρέψει την αναπαράσταση στην αιτούμενη μορφοποίηση, ενημερώνοντας τον πελάτη με κατάλληλο μήνυμα του HTTP πρωτοκόλλου.
Όπως ήδη αναφέρθηκε, η αιτούμενη μορφοποίηση της αναπαράστασης βρίσκεται μέσα στο απεσταλμένο μήνυμα. Αυτό συμβαίνει διότι η αρχιτεκτονική REST επιβάλει τα μηνύματα να είναι αυτό-περιγραφόμενα, δηλαδή να περιέχουν όλη την πληροφορία που χρειάζονται ώστε να επεξεργαστούν, για παράδειγμα δίχως να γνωρίζει ο εξυπηρετητής κάτι για την κατάσταση του πελάτη (Pautasso et al., 2014). Έτσι λοιπόν όλα τα μηνύματα θα πρέπει να περιέχουν πληροφορία για τη μορφοποίηση των αναπαραστάσεων, πληροφορίες για την προσωρινή αποθήκευση κ.α.
Στην REST αρχιτεκτονική είναι δυνατή η πρόσβαση στις λειτουργίες των ΥΙ μέσω των Universal Resource Identifier (URI). Μέσω της κλήσης μιας ΥΙ και κάνοντας χρήση του HTTP πρωτοκόλλου και των HTTP μεθόδων (GET/PUT/POST/DELETE) είναι δυνατή η πρόσβαση και ο χειρισμός των πόρων. Σε μια αρχιτεκτονική τύπου REST δεν υπάρχει ανάγκη υιοθέτησης του μητρώου UDDI καθώς το μόνο προαπαιτούμενο προκειμένου να είναι δυνατή η πρόσβαση στην υπηρεσία, είναι η γνώση του URI της. Για να μπορεί μια ΥΙ να θεωρηθεί RESTful, θα πρέπει αυτή να ικανοποιεί τους περιορισμούς της REST αρχιτεκτονικής. Οι περιορισμοί αυτοί είναι:
1) Client-server:
Κάθε σύστημα που βασίζεται στην αρχιτεκτονική REST θα πρέπει να χαρακτηρίζεται από διαχωρισμό των ευθυνών (separation of concerns). Πιο συγκεκριμένα, ζητήματα όπως η αποθήκευση των δεδομένων θα πρέπει να αποτελούν έγνοια μόνο του εξυπηρετητή, ενώ ο εξυπηρετητής δε θα πρέπει να κρατάει πληροφορία σχετική με την κατάσταση στην οποία βρίσκεται ο κάθε πελάτης. |
2) Uniform interface:
Η διεπιφάνεια (interface) κάθε συστατικού μέλους μιας REST αρχιτεκτονικής θα πρέπει να ακολουθεί συγκεκριμένους γενικούς κανόνες ομοιογένειας, κάτι που διευκολύνει την πρόσβαση στις υπηρεσίες τους, ενώ παράλληλα συμβάλει στη διευκόλυνση της κλιμακωσιμότητας (scalability). |
3) Stateless:
Κάθε αίτημα ενός client περιέχει όλες τις απαραίτητες πληροφορίες για την επεξεργασία του μηνύματος καθώς και για την κατάσταση που βρίσκεται τη συγκεκριμένη στιγμή ο client. Δεν είναι λοιπόν απαραίτητο ο server να κρατάει πληροφορίες σχετικά με την κατάσταση του κάθε client, κάτι που έχει μεγάλο αντίκτυπο στην κλιμακωσιμότητα και την αξιοπιστία του συστήματος. |
4) Cacheable:
Οι εξυπηρετητές επιτρέπουν κάποιες απαντήσεις τους να αποθηκευθούν να προσωρινή μνήμη στην πλευρά του πελάτη. Αυτό συμβαίνει ιδιαίτερα σε πληροφορίες που δεν αλλάζουν με ταχείς ρυθμούς. Αντίθετα, είναι συχνό φαινόμενο το να μην επιτρέπουν την προσωρινή αποθήκευση απαντήσεων, ιδιαίτερα όταν αφορούν πληροφορίες οι οποίες έχουν μικρή διάρκεια ζωής. Με τον τρόπο αυτό, οι clients μπορούν σε ορισμένες περιπτώσεις να αποφύγουν την άσκοπη επικοινωνία με τον server, κάτι που μπορεί να βελτιώσει σε μεγάλο βαθμό την απόδοση ενός συστήματος ιδιαίτερα σε συστήματα μεγάλης κλίμακας, ενώ ταυτόχρονα προστατεύονται από τη χρήση μη επικαιροποιημένων πληροφοριών, κάτι που θα μπορούσε να οδηγήσει σε αλλοίωση δεδομένων. |
5) Layered system:
Στις αρχιτεκτονικές τύπου REST οι clients μπορούν να συνδεθούν είτε απευθείας στον server που παρέχει μια υπηρεσία, είτε σε ενδιάμεσους κόμβους-εξυπηρετητές δίχως να το γνωρίζουν. Αυτό συμβαίνει διότι η αρχιτεκτονική REST χρησιμοποιεί ιεραρχικά επίπεδα για την κατανομή των κόμβων που συμμετέχουν σε ένα σύστημα, όπου κάθε κόμβος μπορεί να επικοινωνεί μόνο με τους κόμβους στους οποίους βρίσκεται πλησιέστερα. |
6) Code on demand (προαιρετικό):
Ο κώδικας κατά απαίτηση (Code on demand) είναι ο μοναδικός περιορισμός που είναι προαιρετικός για την REST αρχιτεκτονική. Πέρα από τις ζητούμενες πληροφορίες και τις αναπαραστάσεις πόρων, οι server σε κάποιες περιπτώσεις μπορούν να προσφέρουν και εκτελέσιμο κώδικα στον client, με τις πιο συνήθης υλοποιήσεις να αφορούν κώδικα σε JavaScript, αλλά και Java applets. |
7. Επιλογή και σύνθεση Υπηρεσιών Ιστού
Όπως γίνεται φανερό, τα τελευταία χρόνια οι ΥΙ έχουν φέρει επανάσταση στον τρόπο με τον οποίο ετερογενή συστήματα επικοινωνούν και αλληλεπιδρούν διαδικτυακά. Μια από τις μεγαλύτερες ευκαιρίες που παρέχει η χρήση της τεχνολογίας των ΥΙ είναι η σύνθεση ΥΙ για τη δημιουργία ΥΙ προστιθέμενης αξίας με προσανατολισμό σε συγκεκριμένο πεδίο εφαρμογής. Ειδικότερα στον τομέα του ηλεκτρονικού εμπορίου, παραδείγματα σύνθεσης ΥΙ θα μπορούσαν να αποτελούν συστήματα που συνδυάζουν υπηρεσίες ηλεκτρονικού καλαθιού, μεταφορικών εταιριών, υπηρεσιών διαφήμισης και πληρωμής. Ωστόσο, η προαναφερθείσα επιτυχία των ΥΙ έχει οδηγήσει στην ύπαρξη πληθώρας ΥΙ, γεγονός που καθιστά δύσκολη ,τόσο για τους χρήστες όσο και για τις επιχειρήσεις, την επιλογή των ιδανικών ΥΙ, είτε αυτές πρόκειται να χρησιμοποιηθούν μεμονωμένα είτε σαν μέλος μιας ευρύτερης σύνθεσης.
Πολλές τεχνολογίες και μέθοδοι έχουν προταθεί στη βιβλιογραφία για την αντιμετώπιση ζητημάτων επιλογής και σύνθεσης (Sheng et al., 2014). Οι σημασιολογίες, μέσω της χρήσης οντολογιών, αποτελούν μια πολύ δημοφιλή μέθοδο επιλογής (Hatzi et al., 2012). ¶λλες προσεγγίσεις αφορούν στη χρήση αλγορίθμων όπως ο skyline αλγόριθμος για το φιλτράρισμα ΥΙ (Alrifai et al., 2010) αλλά και μέθοδοι που προέρχονται από τον τομέα της επιχειρησιακής έρευνας και επιτρέπουν την επιλογή της βέλτιστης εναλλακτικής με βάση προκαθορισμένα και συχνά αντικρουόμενα κριτήρια. Αυτές οι τεχνικές ανήκουν στην κατηγορία των πολυκριτηριακών μεθόδων απόφασης και θα αναπτυχθούν περισσότερο στο επόμενο κεφάλαιο.
Επιπρόσθετα χαρακτηριστικά ποιότητας (Quality of Service - QoS), μιας υπηρεσίας μπορούν να ληφθούν υπόψη κατά τη διαδικασία βελτιστοποίησης μιας σύνθεσης ΥΙ.
7.1 Σύνθεση ΥΙ τύπου WS*
Υπάρχουν διάφορες προσεγγίσεις για τη σύνθεση ΥΙ, και για τον λόγο αυτό η επιλογή της κατάλληλης σχετίζεται με τις επιχειρηματικές ανάγκες των εμπλεκομένων μερών. Πριν εισάγουμε τις σύγχρονες προσεγγίσεις όμως, πρέπει να αναλυθούν οι όροι ενορχήστρωση και χορογραφία.
- Xορογραφία
- Eνορχήστρωση
Η Χορογραφία (Choreography) σχετίζεται με την ανταλλαγή δημοσίων μηνυμάτων, τις διαπραγματεύσεις και τις συμφωνίες μεταξύ των επιχειρηματικών διαδικασιών και τέλος των κανόνων που εφαρμόζονται. Κατά κύριο λόγο έχει προσανατολισμό προς τους clients των ΥΙ, είτε αυτοί είναι οι τελικοί χρήστες, είτε πρόκειται απλά για ΥΙ που «καταναλώνουν» άλλες ΥΙ. Καθώς οι συναλλαγές ανάμεσα σε ΥΙ θα πρέπει να καθορίζονται με τρόπο ξεκάθαρο πριν την υλοποίηση τους, όλοι οι συμμετέχοντες στη σύνθεση των υπηρεσιών έχουν ίσα δικαιώματα και μπορούν, ανά πάσα στιγμή, να έχουν πρόσβαση σε πληροφορίες σχετικά με το πώς κάθε υπηρεσία μπορεί να συνεργαστεί με μια άλλη. |
Από την άλλη πλευρά, η Ενορχήστρωση, καθορίζεται κυρίως από XML-based γλώσσες ορισμού, όπως η BPEL, και ουσιαστικά περιγράφει το πώς οι υπηρεσίες μπορούν να αλληλεπιδρούν εστιάζοντας όμως σε συγκεκριμένες ΥΙ και δε διαθέτει τον δημόσιο χαρακτήρα της Χορογραφίας. |
7.2. Χειροκίνητες Συνθέσεις (Manual Compositions)
Η πιο κοινή μέθοδος σύνθεσης είναι η λεγόμενη χειροκίνητη σύνθεση ΥΙ, κατά την οποία ο χρήστης εισάγει μία λίστα παραμέτρων (η οποία περιγράφει τις λειτουργίες που επιθυμεί από την ΥΙ ή ακόμη και τα μη-λειτουργικά χαρακτηριστικά που επιθυμεί όπως είναι τα QoS χαρακτηριστικά), και λαμβάνει μια λίστα από δυνητικά κατάλληλες ΥΙ για τη σύνθεση. Στη συνέχεια, ο χρήστης καλείται να συγχωνεύσει αυτές τις ΥΙ δίνοντας ταυτόχρονα σαφείς οδηγίες σχετικά με τον τρόπο σύνδεσης και αλληλεπίδρασης. Παράλληλα, ο χρήστης θα πρέπει να μεριμνήσει για τον ορισμό της σειράς επίκλησης των ΥΙ αλλά και για τον καθορισμό των εξόδων συγκεκριμένων ΥΙ που θα μπορούν να χρησιμοποιηθούν ως είσοδοι για άλλες ΥΙ.
Περισσότερα:
Παρότι αποτελεί μια αρκετά αξιόπιστη μέθοδο σύνθεσης, η οποία εξασφαλίζει πως το τελικό αποτέλεσμα της σύνθεσης θα είναι πολύ κοντά στο επιθυμητό, παρουσιάζει το σημαντικό μειονέκτημα της απαίτησης της ανθρώπινης παρέμβαση σε κάθε βήμα. Είναι όμως μια μέθοδος που έχει ευρεία απήχηση σε συγκεκριμένους τομείς, όπου η αλλαγή μιας σύνθεσης μπορεί να είναι επιζήμια. |
7.3. Μερικώς αυτοματοποιημένες συνθέσεις (Partially Automated Composition)
Στην περίπτωση των μερικώς αυτοματοποιημένων συνθέσεων, ο τελικός χρήστης μπορεί να επιλέξει από μια σειρά ΥΙ που έχουν ανακαλυφθεί, με βάση κάποια υποκειμενικά κριτήρια, χωρίς κατ 'ανάγκη να γνωρίζει κάθε πτυχή σχετικά με τα λειτουργικότητα και μη-λειτουργικά χαρακτηριστικά της επιλεγμένης ΥΙ. Έτσι, ο χρήστης έχει μικρότερη εμπλοκή και χρειάζεται να επέμβει περισσότερο μόνο σε περιπτώσεις κατά τις οποίες υπάρχει ελλιπής κατάλογος επιστρεφόμενων αποτελεσμάτων ή υπάρχουν ασυμβατότητες ανάμεσα σε ΥΙ, κάτι που θα καθιστούσε αδύνατη τη σύνθεση μιας υπηρεσίας προστιθέμενης αξίας. Στην ημι-αυτοματοποιημένη σύνθεση βασικό ρόλο επιτελούν τα μεταδεδομένα και οι σημασιολογικές περιγραφές των ΥΙ, γεγονός που διευκολύνει την αυτοματοποιημένη ανακάλυψη τους.
7.4. Αυτοματοποιημένη σύνθεση (Automated Composition)
Η προσέγγιση της αυτοματοποιημένης σύνθεσης (Wang et al., 2014) χαρακτηρίζεται από την εισαγωγή μιας μηχανής σύνθεσης. Μια τέτοια μηχανή συνθέτει ΥΙ με αυτοματοποιημένο τρόπο και χωρίς τη μεσολάβηση του ανθρώπινου παράγοντα. Αυτό καθίσταται εφικτό με τη χρήση προηγμένων σημασιολογικών κανόνων, αλλά και αλγορίθμων. Στην περίπτωση αυτή, ο τελικός χρήστης περιγράφει μόνο τις επιχειρηματικές του ανάγκες και τους επιδιωκόμενους στόχους, και δε συμμετέχει στη διαδικασία ανακάλυψης, επιλογής και σύνθεσης. Σε ακόμα πιο προχωρημένες περιπτώσεις αυτοματοποιημένων συνθέσεων, η μηχανή σύνθεσης μπορεί να λάβει υπόψη στοιχεία του εξωτερικού περιβάλλοντος και προκλήσεις της επιχείρησης και αναλόγως να προσαρμόσει τη διαδικασία σύνθεσης.
Περισσότερα:
Ένα τέτοιο παράδειγμα σε περιβάλλοντα ΗΕ θα ήταν η λήψη στοιχείων σχετικά με την τιμολογιακή πολιτική ανταγωνιστών και η σύνθεση υπηρεσιών με τέτοιο τρόπο έτσι ώστε να εξασφαλίσει η επιχείρηση ανταγωνιστικό πλεονέκτημα. |
7.5. Σύνθεση βασισμένη στην μοντελοποίηση (Model Based Composition)
Μια διαφορετική προσέγγιση για τη σύνθεση ΥΙ είναι η προσέγγιση με βάση τη μοντελοποίηση. Αφορά στη δημιουργία σε πρώτο στάδιο ενός θεωρητικού μοντέλου που θα περιγράφει την ενορχήστρωση των ΥΙ όπως αυτή προκύπτει από τα στάδια της ανακάλυψης και της επιλογής. Το μοντέλο αυτό μπορεί να δημιουργηθεί σε μια καθιερωμένη γλώσσα μοντελοποίησης όπως για παράδειγμα στη UML, στη συνέχεια όμως μπορεί να γίνει μετασχηματισμός του μοντέλου αυτού σε μια μορφή περισσότερο domain specific με απώτερο στόχο τον έλεγχο ιδιοτήτων αλλά και την αυτόματη παραγωγή κώδικα.
7.6. Δυναμικές συνθέσεις (Dynamic Composition)
Ενώ τα παραπάνω περιγράφουν στατικές συνθέσεις ΥΙ, είναι δυνατόν να έχουμε και δυναμικές συνθέσεις που εκτελούνται κατά τη διάρκεια της εκτέλεσης του συστήματος, κάτι που είναι εφικτό χάρη στη λεγόμενη «δυναμική σύνδεση υπηρεσιών». Δεδομένου ότι πολλές αλλαγές μπορούν να συμβούν στο περιβάλλον μιας επιχείρησης κατά τη διάρκεια της εκτέλεσης ενός συστήματος και καθώς νέες ΥΙ συνεχώς προστίθενται στο σύνολο των διαθέσιμων ΥΙ, η δυναμική σύνδεση υπηρεσιών παρέχει τα μέσα για τη δημιουργία ευέλικτων και συνεχώς αναπροσαρμοζόμενων ΥΙ. Με τον τρόπο αυτό είναι δυνατή η συνεχής βελτίωση της απόδοσης της σύνθεσης. Η μεθοδολογία αυτή βασίζεται στην αντικατάσταση υπηρεσιών από νέες κατά τη διάρκεια εκτέλεσης του συστήματος, καθώς αυτές ίσως να εκπληρώνουν καλύτερα τις διαρκώς μεταβαλλόμενες ανάγκες των επιχειρήσεων. Η μεθοδολογία ουσιαστικά στηρίζεται στη δημιουργία δυναμικών συνδέσμων, δημιουργώντας ουσιαστικά τις θέσεις στις οποίες θα τοποθετηθούν οι ΥΙ κατά τη διάρκεια της εκτέλεσης, όπως φαίνεται και στο σχήμα 9.11.
Κάντε κλικ στα εικονίδια του σχήματος για επεξήγηση
Σχήμα 9.11 Σύνθεση ΥΙ με χρήση δυναμικών συνδέσμων
Οι δυναμικές συνθέσεις είναι δυσκολότερες στον χειρισμό καθώς στηρίζονται στη χρήση πολύπλοκων αλγορίθμων για τη δυναμική σύνδεση, οι οποίοι απαιτούν περισσότερους πόρους (όπως μεγαλύτερη επεξεργαστική ισχύ και μνήμη) από το σύστημα για να εκτελεστούν.
7.7. Σύνθεση βασισμένη σε χαρακτηριστικά ποιότητας υπηρεσιών (QoS-Based Composition)
Με τον όρο χαρακτηριστικά ποιότητας υπηρεσιών (QoS) περιγράφουμε μη-λειτουργικά χαρακτηριστικά και ιδιότητες μιας ΥΙ. Δεδομένου ότι ολοένα και περισσότερες υπηρεσίες είναι διαθέσιμες στο Διαδίκτυο, πολλές φορές ο τελικός χρήστης, ή η μηχανή σύνθεσης που αναλαμβάνει να διεκπεραιώσει τη σύνθεση, ενδεχομένως να πρέπει να επιλέξει ανάμεσα από πολλές ΥΙ που παρέχουν την ίδια λειτουργία αλλά παρ' όλα αυτά παρουσιάζουν διαφορετικές παραμέτρους QoS. Αυτές οι παράμετροι διαφοροποιούν σε μεγάλο βαθμό τις υπηρεσίες και είναι ζωτικής σημασίας για τη δημιουργία μιας σύνθετης ΥΙ που να ανταποκρίνεται στα κριτήρια που θεσπίζει ο χρήστης (Kattepur et al., 2013)
Αναλυτικά οι κυριότερες παράμετροι QoS είναι:
1) Διαθεσιμότητα:
αναφέρεται στο χρονικό διάστημα κατά το οποίο η ΥΙ είναι διαθέσιμη για τις μηχανές σύνθεσης και για τον τελικό χρήστη. |
2) Χρόνος απόκρισης:
αντανακλά τον χρόνο που μεσολαβεί μεταξύ της κλήσης της ΥΙ και της στιγμής κατά την οποία αυτή ολοκληρώνει τη λειτουργία της. Αν ο χρόνος αυτός είναι πολύ υψηλός, η ποιότητα και η απόδοση της τελικής σύνθεσης επηρεάζεται σημαντικά. |
3) Αξιοπιστία:
Με τον όρο αυτό αναφερόμαστε στην ικανότητα της ΥΙ να ολοκληρώνει τη λειτουργία της, οποτεδήποτε καλείται και πάντα εντός της προκαθορισμένης χρονικής προθεσμίας. |
4) Επεκτασιμότητα:
Μια ΥΙ θα πρέπει να είναι σε θέση να ολοκληρώσει τη λειτουργία της στα προκαθορισμένα χρονικά πλαίσια, ακόμα και όταν ένα μεγάλο πλήθος χρηστών καλούν και επιχειρούν να «καταναλώσουν» την υπηρεσία την ίδια στιγμή. |
5) Απαιτήσεις/Κόστος :
Αντανακλά το χρηματικό αντίτιμο, δηλαδή το κόστος που θα έχει η κλήση και η «κατανάλωση» της ΥΙ στον τελικό χρήστη. Ωστόσο, σε κάποιες περιπτώσεις αυτό το χαρακτηριστικό ποιότητας μπορεί να χρησιμοποιηθεί για να περιγράψει το απαιτούμενο κόστος σε επεξεργαστική ισχύ, μνήμη αλλά και άλλους πόρους του συστήματος. |
6) Σχόλια:
Πολλά μητρώα ΥΙ ενσωματώνουν μηχανισμούς άμεσης ανατροφοδότησης από τους τελικούς χρήστες. Έτσι ανάλογα με τη βαθμολόγηση προηγούμενων χρηστών, ο τελικός χρήστης ή η μηχανή σύνθεσης μπορεί αποφασίσει το κατά πόσο επιθυμεί να επιλέξει μια ΥΙ για να τη συμπεριλάβει σε μια σύνθεση. Με την ανάπτυξη και την υιοθέτηση των τεχνολογιών που εισήγαγε το Web 2.0, όπως είναι οι τεχνολογίες κοινωνικής δικτύωσης, παρατηρείται μια αύξηση στη χρήση έμμεσων τεχνικών ανατροφοδότησης κατά τις οποίες γίνεται άντληση στοιχείων από κοινωνικά δίκτυα τα οποία μετά από επεξεργασία μπορούν να δείξουν τάσεις και προθέσεις χρηστών προς συγκεκριμένες εφαρμογές. Τέτοιες τεχνολογίες έχουν αρχίσει να συμπεριλαμβάνονται και στα πιο σύγχρονα μητρώα ΥΙ, γεγονός που βοηθά ακόμα περισσότερο τον τελικό χρήστη στη διαδικασία επιλογής ΥΙ. |
7) Ασφάλεια:
Αυτή η παράμετρος περιγράφει τις τεχνικές, τις μεθόδους αλλά και τα πρωτόκολλα ασφαλείας που χρησιμοποιούνται από την ΥΙ και τον πάροχό της. Παραδείγματα τεχνικών περιλαμβάνουν τους αλγόριθμους κρυπτογράφησης και ιδιωτικότητας που απαιτούνται, ενώ στον τομέα των πρωτοκόλλων περιλαμβάνονται τα πρωτόκολλα WS-Security για την περίπτωση των Soap-based ΥΙ ενώ για την περίπτωση των REST ΥΙ είναι απαραίτητη η χρήση SSL από την υποδομή του παρόχου της ΥΙ. |
Σε μια σύνθεση υπηρεσιών θα πρέπει να εξασφαλίζεται πως παράμετροι ποιότητας μιας ΥΙ δε θα έρχονται σε αντίθεση με τις παραμέτρους ποιότητας των άλλων ΥΙ κατά την αλληλεπίδραση τους. Έτσι για παράδειγμα, η χρήση διαφορετικών πρωτοκόλλων και μηχανισμών ασφαλείας μπορεί να προκαλέσει ασυμβατότητα και αδυναμία επεξεργασίας της συνολικής σύνθεσης. Για τον λόγο αυτό είναι απαραίτητη η χρήση ευέλικτων φίλτρων από την εκάστοτε μηχανή αναζήτησης, τα οποία θα μπορούν να αναπροσαρμόζονται σε τακτά χρονικά διαστήματα, ανάλογα με το πλήθος των αποτελεσμάτων, και τις περιγραφές των επιστρεφόμενων ΥΙ.
7.8. Business-Driven Automated Composition
Μία από τις μεγαλύτερες θεωρητικές προκλήσεις στις αρχιτεκτονικές τύπου SOA, όπως αυτή φαίνεται από τη βιβλιογραφία, είναι ο διαχωρισμός του «επιχειρησιακού επιπέδου» από το «επίπεδο συστήματος». Ως επίπεδο συστήματος ορίζονται τα χαρακτηριστικά των υπηρεσιών που δε σχετίζονται με τις επιχειρηματικές λειτουργίες της υπηρεσίας, όπως για παράδειγμα οι παράμετροι QoS που αναφέρθηκαν παραπάνω.
Ένας τέτοιος διαχωρισμός αυτών των δύο επιπέδων, θα μπορούσε να καταστήσει εφικτή μια πιο ευέλικτη προσέγγιση συνθέσεων ΥΙ που θα στηρίζονται στο ημι-αυτοματοποιημένο σύστημα συνθέσεων, που παρά ταύτα θα είχαν και τη δυνατότητα αναπροσαρμογής κατά την εκτέλεση. Η σύνθεση των υπηρεσιών στο επιχειρηματικό επίπεδο θα απαιτούσε σημαντικό βαθμό συμμετοχής από τον χρήστη, καθώς μέσα από τη χρήση εργαλείων επιλογής, σύνθεσης και παρακολούθησης θα μπορούσε να εξασφαλίσει πως πληρούνται οι επιχειρηματικές του ανάγκες, δηλαδή τα λειτουργικά χαρακτηριστικά των ΥΙ ανταποκρίνονται στις απαιτήσεις του. Στη συνέχεια, η μηχανή σύνθεσης θα μπορούσε με αυτοματοποιημένο τρόπο, και δίχως την περαιτέρω συμμετοχή του χρήστη, να πραγματοποιήσει τη σύνθεση στο επίπεδο συστήματος εξασφαλίζοντας πως δε θα υπάρξει ασυμβατότητα ανάμεσα στα μη λειτουργικά χαρακτηριστικά των ΥΙ.
Σε ένα τέτοιο σύστημα, η μηχανή σύνθεσης θα ήταν σε θέση να αντικαθιστά υπηρεσίες όταν αυτές παύουν να πληρούν τις ανάγκες των επιχειρήσεων σε επίπεδο λειτουργικών χαρακτηριστικών, ενώ ταυτόχρονα θα αναπροσάρμοζε το επίπεδο συστήματος.
Σε κάθε περίπτωση η ανάπτυξη ενός τέτοιου μοντέλου σύνθεσης έχει πολλές προκλήσεις, αποτελεί όμως ένα ενδιαφέρον ερευνητικό πεδίο, αφού συνδυάζει τα σημαντικότερα πλεονεκτήματα των άλλων μοντέλων σύνθεσης.
8. BPEL και OWL-S
Πολλές γλώσσες και πρωτόκολλα έχουν προταθεί για τη διευκόλυνση της ενορχήστρωσης συνθέσεων ΥΙ. Ωστόσο, οι δημοφιλέστερες επιλογές είναι η BPEL και η OWL-S.
8.1. BPEL
Η Business Process Execution Language (BPEL) είναι μια γλώσσα ροής υψηλού επιπέδου, βασισμένη στην XML, που επιτρέπει την περιγραφή επιχειρηματικών διαδικασιών και παρέχει τα μέσα για την ενορχήστρωση και τη σύνθεσή τους. Η BPEL τυποποιήθηκε από τις εταιρίες IBM και Microsoft τον Απρίλιο του 2003. Ένα αρχείο γραμμένο σε BPEL είναι σε θέση να περιγράψει το πώς οι ΥΙ αλληλεπιδρούν μεταξύ τους, αλλά και με τις μηχανές σύνθεσης. Παράλληλα, μπορεί να ορίσει τη σειρά με την οποία θα γίνεται η κλήση και η «κατανάλωση» των υπηρεσιών. Έτσι μπορεί να ειπωθεί πως η γλώσσα BPEL εστιάζει στον τρόπο συντονισμού επιχειρηματικών διαδικασιών, μέσω διαγραμμάτων ροής, και όχι σε λεπτομέρειες σχετικές με τη λειτουργικότητα της κάθε ΥΙ που συμμετέχει σε μια ενορχήστρωση ΥΙ.
Το κυριότερο δομικό στοιχείο μιας διαδικασίας περιγραφόμενης σε γλώσσα BPEL είναι η δραστηριότητα (activity). Οι δραστηριότητες χωρίζονται σε δύο κύριες κατηγορίες:
- Βασικές (Basic)
- Δομημένες (Structured)
Οι βασικές δραστηριότητες χρησιμοποιούνται για τον χειρισμό των δεδομένων κατά την εκτέλεση μιας ενορχήστρωσης αλλά και για τον χειρισμό των αλληλεπιδράσεων μεταξύ των ΥΙ. Μερικές βασικές δραστηριότητες είναι Compensate, Assign, Wait, Throw, ReThrow, και Exit |
Οι δομημένες δραστηριότητες συνήθως περιέχουν άλλες δραστηριότητες και χρησιμοποιούνται για την περιγραφή του συντονισμού των επιχειρηματικών διαδικασιών. Ενδεικτικές δομημένες δραστηριότητες είναι οι If, While, Pick, Flow, Sequence και Scope. |
Κάθε διαδικασία BPEL αλληλεπιδρά με ένα πλήθος συνεργατών (partners). Με τον όρο αυτό εννοείται κάθε μέλος με το οποίο πραγματοποιούνται συναλλαγές και ανταλλαγές μηνυμάτων. Η αλληλεπίδραση με τους συνεργάτες πραγματοποιείται μέσω των λεγόμενων συνδέσμων συνεργατών (partner-Links). Στα partner links γίνεται ο καθορισμός των portTypes που προσφέρονται από μια ΥΙ αλλά και αυτών που απαιτούνται να υπάρχουν από τους συνεργάτες με τους οποίους αλληλεπιδρά.
Όπως φαίνεται στο σχήμα 9.2., η BPEL βρίσκεται στο υψηλότερο επίπεδο της στοίβας προδιαγραφών WS. Σε κάθε αρχείο BPEL γίνεται χρήση των περιγραφών WSDL για τον καθορισμό των αλληλεπιδράσεων των ΥΙ που συμμετέχουν σε μια σύνθεση.
8.2. OWL-S
Η γλώσσα OWL-S είναι μια γλώσσα σημασιολογικής σήμανσης που στοχεύει στην περιγραφή υπηρεσιών βάση σημασιολογικών χαρακτηριστικών (Farrag et al., 2013; Martin et al., 2005). Παρέχει τον τρόπο στους παρόχους να περιγράψουν σημασιολογικά τις ΥΙ που παρέχουν με τη χρήση οντολογιών. Με τον τρόπο αυτό, η ανακάλυψη και η σύνθεση διευκολύνεται καθώς οι μηχανές σύνθεσης μπορούν να ερμηνεύσουν αυτόματα τις λειτουργίες, τις ιδιότητες, τις προϋποθέσεις και τις δυνατότητες μιας ΥΙ υπό αυστηρούς περιορισμούς. Πιο συγκεκριμένα, η μηχανή σύνθεσης, μέσα από την επεξεργασία των οντολογιών, μπορεί να έχει πρόσβαση σε πληροφορίες σχετικές με το τι κάνει η υπηρεσία, ποιες είναι οι παράμετροι εισόδου που απαιτούνται, ποια είναι τα αποτελέσματα που θα πρέπει να αναμένονται καθώς και το τι είδους μηνύματα και δεδομένα ανταλλάσσονται κατά την εκτέλεση κάθε ΥΙ. Το σημαντικό είναι πως αυτές οι πληροφορίες μπορούν να γίνουν κατανοητές και να αξιοποιηθούν από τη μηχανή σύνθεσης χωρίς να υπάρχει η ανάγκη για ανθρώπινη παρέμβαση. Πολλές επεκτάσεις έχουν προταθεί για την OWL-S. Μια από τις πιο αξιοσημείωτες είναι η OWL-Q, η οποία βασίζεται σε αρχές σχεδιασμού αλλά και σε απαιτήσεις που προκύπτουν από χαρακτηριστικά ποιότητας ΥΙ.
9. Υπηρεσίες Ιστού και το Διαδίκτυο των Αντικειμένων
Τα τελευταία χρόνια, η έννοια του Web of Things (WoT), ως μια συλλογή από καινοτόμες ιδέες και τεχνολογίες, έχει προσελκύσει την προσοχή των ερευνητικών και επιχειρηματικών κοινοτήτων, αφού φαίνεται πως θα αποτελέσει για τις επιχειρήσεις ένα νέο τρόπο για να παρέχουν υπηρεσίες προστιθέμενης αξίας για την εκπλήρωση των αναγκών των πελατών τους (Vesyropoulos & Georgiadis, 2013).
Με τη δημιουργία εικονικών αναπαραστάσεων για αντικείμενα του πραγματικού κόσμου, δίνεται η δυνατότητα πρόσβασης στη λειτουργικότητα τους μέσω υπηρεσιών τύπου REST. Με τον τρόπο αυτό υπηρεσίες που θα προέρχονται από τα «έξυπνα» πλέον αυτά αντικείμενα, οι αποκαλούμενες «φυσικές Υπηρεσίες Ιστού» (π.χ. που προέρχονται από έξυπνα ψυγεία ή συστήματα θέρμανσης) προστίθενται στην ήδη υπάρχουσα αφθονία ΥΙ που υπάρχουν στο Διαδίκτυο. Όπως αυτό είναι φυσικό, κάτι τέτοιο μπορεί να περιπλέξει την επιλογή και τη σύνθεση ΥΙ για τους τελικούς χρήστες.
Ως εκ τούτου, προκύπτει η ανάγκη για νέες τεχνικές επιλογής ΥΙ που θα αφορούν τόσο τις φυσικές ΥΙ (physical WS), όσο και τις παραδοσιακές ΥΙ (virtual WS), και που θα είναι σε θέση να παράγουν συνθέσεις ή συγκλίσεις ΥΙ, με βάση τις εξατομικευμένες ανάγκες σε χαρακτηριστικά ποιότητας. Τέτοιες προσεγγίσεις έχουν ήδη παρουσιαστεί στην ερευνητική βιβλιογραφία.
Το WoT, ως επέκταση του «Διαδικτύου των Αντικειμένων» (IoT) (Da Xu et al., 2014), έχει κερδίσει πρόσφατα μεγάλη προσοχή, καθώς υπόσχεται μια πληθώρα από οφέλη που επέφερε το IoT, σε συνδυασμό με την ευκολία χρήσης των γνωστών πρoτύπων του Παγκοσμίου Ιστού. Τα πρότυπα αυτά χρησιμοποιούνται προκειμένου να καταστεί δυνατή η επικοινωνία και η διαλειτουργικότητα μεταξύ των YI και των αντικειμένων του πραγματικού κόσμου (Guinard et al., 2011).
Για να επιτευχθεί μια σύνδεση με ένα τέτοιο «έξυπνο» αντικείμενο, το μόνο που χρειάζεται είναι μια απλή διεύθυνση URL που θα παρέχει πρόσβαση στην εικονική αναπαράσταση του αντικειμένου. Αυτή η αναπαράσταση μπορεί να έχει τη μορφή μιας ιστοσελίδας που παρέχει πρόσβαση σε υπηρεσίες που αντιστοιχούν σε λειτουργίες του αντικειμένου. Εκμεταλλευόμενοι τις καθιερωμένες αρχιτεκτονικές και τα πρωτόκολλα του Διαδικτύου, είναι δυνατή η δημιουργία ενός δικτύου εικονικών αναπαραστάσεων αντικειμένων, το οποίο θα στηρίζεται στην ενσωμάτωση αισθητήρων αλλά και των λεγόμενων «έξυπνων πυλών» που υποβοηθούν την επικοινωνία αντικειμένων που βασίζονται σε ετερογενή πρωτόκολλα επικοινωνίας.
Η έννοια του WoT προτείνει τη χρήση του γνωστού πρωτοκόλλου HTTP ως πρωτόκολλο εφαρμογής (application protocol), που καθιστά ιδανικές ΥΙ για χρήση, της υπηρεσίες τύπου REST. Οι υπηρεσίες αυτές μπορούν να παρέχουν πρόσβαση στη λειτουργικότητα της εικονικής αναπαράστασης ενός "έξυπνου" φυσικού αντικειμένου χρησιμοποιώντας URIs και ένα σύνολο μεθόδων HTTP (GET, POST, PUT, DELETE). Έτσι, είναι δυνατή η ανταλλαγή δεδομένων μεταξύ των "έξυπνων αντικειμένων», συνήθως σε JSON, Atom ή XML. Αυτό επιτρέπει τον χειρισμό αυτών των εικονικών αναπαραστάσεων από Web client που είναι συμβατοί με το πρωτόκολλο HTTP, όπως για παράδειγμα οι φυλλομετρητές που χρησιμοποιούνται για την περιήγηση στο Web.
10. Σύνθεση και σύγκλιση υπηρεσιών REST στα πλαίσια του Διαδικτύου των Αντικειμένων
Σε αντίθεση με τις υπηρεσίες τύπου SOAP, οι υπηρεσίες τύπου REST συντίθεται συνήθως με τη μορφή των Web 2.0 mashups. Με τον όρο Web mashup, αναφερόμαστε σε μια Web εφαρμογή ή ιστοσελίδα που συνήθως χρησιμοποιεί application programming interfaces (APIs) για να ενώσει πληροφορίες από πολλαπλές πηγές για τη δημιουργία υπηρεσιών προστιθέμενης αξίας. Ενώ υπάρχουν και εναλλακτικές μέθοδοι για τη σύνθεση υπηρεσιών REST, η χρήση των mashups που οδηγεί στην αποκαλούμενη "σύγκληση υπηρεσιών" παραμένει η πιο δημοφιλής μέθοδος.
Καθώς ολοένα και περισσότερες συσκευές με ενσωματωμένους αισθητήρες θα είναι σε θέση να παρέχουν, μέσω ΥΙ, πρόσβαση στη λειτουργικότητα τους και ένα μεγάλο πλήθος πραγματικών αντικειμένων θα έχει τη δυνατότητα της επικοινωνίας και διαλειτουργικότητας μέσω TCP / IP δικτύων, η ανάγκη για τη δημιουργία υπηρεσιών προστιθέμενης αξίας ως αποτέλεσμα σύνθεσης «φυσικών υπηρεσιών», αλλά και virtual ΥΙ, αυξάνεται εκθετικά.
10.1. Physical-Virtual Mashups
Οι συγκλίσεις τύπου Physical-Virtual Mashups αφορούν τη σύνθεση ΥΙ που παρέχονται όχι μόνο από τις παραδοσιακές Web-based υπηρεσίες (εικονικές ΥΙ), αλλά κι από τις υπηρεσίες που παρέχονται από φορητές συσκευές αλλά και από τα φυσικά αντικείμενα του πραγματικού κόσμου. Οι ΥΙ «φυσικού τύπου» επιτρέπουν σε επιχειρήσεις, τελικούς χρήστες αλλά και σε άλλες έξυπνες συσκευές να αλληλεπιδρούν με συσκευές που παρέχουν τέτοιες ΥΙ, με την αποστολή αιτήσεων HTTP.
Ένα παράδειγμα σύνθεσης «φυσικών» και «εικονικών» υπηρεσιών με τη μορφή σύγκλισης αφορά την προβολή πληροφοριών σχετικά με την κατανάλωση ενέργειας από διάφορες συσκευές μιας επιχείρησης σε συνδυασμό με τη χρήση ενός εξωτερικού (ή μελλοντικά εσωτερικού) χάρτη. Έτσι οι «φυσικές» ΥΙ, δηλαδή οι πληροφορίες που προκύπτουν από τους αισθητήρες μέτρησης κατανάλωσης ενέργειας που θα βρίσκονται ενσωματωμένοι στις συσκευές αυτές θα απεικονίζονται σε έναν εικονικό χάρτη (μέσω μιας υπηρεσίας χάρτη όπως π.χ. μέσω της χρήσης του API των χαρτών της Google) με τέτοιο τρόπο έτσι ώστε να φανερώνεται η γεωγραφική τους τοποθεσία. Με τον τρόπο αυτό είναι ευκολότερη η συντήρηση των συσκευών και ο γρήγορος εντοπισμός προβλημάτων.
10.2. Physical-Physical Mashups
Οι συγκλίσεις τύπου Physical-Physical Mashups, προκύπτουν από τη σύνθεση ΥΙ που δίνουν πρόσβαση στις λειτουργίες συσκευών με ενσωματωμένους αισθητήρες. Τέτοιες συγκλίσεις προβάλουν ή δίνουν πρόσβαση σε στοιχεία που παρέχονται από αντικείμενα του πραγματικού κόσμου. Καθώς τέτοιες συσκευές μπορούν να αλληλεπιδρούν με τη χρήση του HTTP πρωτοκόλλου, είναι δυνατή η λεγόμενη μηχανή-προς-μηχανή αλληλεπίδραση (machine-to-machine interaction), στην οποία δεν είναι υποχρεωτική η ανθρώπινη παρέμβαση. Πολλές φορές λοιπόν τα Physical-Physical Mashups, αποτελούν και ένα μέσο παρακολούθησης της διαλειτουργικοτητας μεταξύ των έξυπνων συσκευών, πέρα από τη χρήση τους σαν μέσα σύνθεσης των «φυσικών» ΥΙ των συσκευών αυτών.
'Ένα παράδειγμα τέτοιας εφαρμογής θα περιελάμβανε τη συνεργασία μεταξύ των αισθητήρων της γραμμής παραγωγής μιας επιχείρησης.
Περισσότερα:
Σε μια τέτοια σύγκλιση ΥΙ, η αύξηση της θερμοκρασίας σε ένα συγκεκριμένο μηχάνημα παραγωγής θα μπορούσε να οδηγήσει σε μια ανταλλαγή μηνυμάτων μεταξύ του μηχανήματος και των συστημάτων διαχείρισης εξαερισμού και κλιματισμού. Σε κάθε περίπτωση μέσω της σύγκλισης θα ήταν δυνατή η παρακολούθηση της διαδικασίας ανταλλαγής μηνυμάτων από τον αρμόδιο υπάλληλο ο οποίος θα είχε πρόσβαση στη σύγκλιση αυτή. |
10.3. Business Intelligence Mashups
Οι συγκλίσεις τύπου Business Intelligence αφορούν κυρίως επιχειρήσεις. Αποτελούν Web εφαρμογές, οι οποίες ενσωματώνουν αποτελεσματικά ένα πλήθος από τοπικές εφαρμογές της επιχείρησης οι οποίες ικανοποιούν τις διάφορες επιχειρηματικές ανάγκες της. Επιπρόσθετα, οι συγκλίσεις αυτού του τύπου μπορεί να περιλαμβάνουν και εξωτερικές ΥΙ, με σκοπό τη δημιουργία υπηρεσιών προστιθέμενης αξίας. Λόγω της ανάγκης ενσωμάτωσης επιχειρηματικής λογικής, στα Business Intelligence Mashups συχνά γίνεται χρήση σημασιολογικών κανόνων, ενώ είναι απαραίτητη και η ενορχήστρωση μέσω BPEL. Είναι συχνά απαραίτητη η χρήση ΥΙ τύπου SOAP, και θα πρέπει να υπάρχει δυνατότητα αναπροσαρμογής της σύγκλισης, με την τροποποίηση ΥΙ κατά την εκτέλεση, έτσι ώστε να μπορεί αυτή να ανταποκριθεί στις ταχύτατες αλλαγές του επιχειρηματικού περιβάλλοντος.
11. Συμπεράσματα
Καθώς το επιχειρείν βασίζεται σε ολοένα και πιο μεγάλο βαθμό στις συναλλαγές μέσω Διαδικτύου (η-επιχειρείν), είναι απαραίτητη η αντιμετώπιση των προβλημάτων που εγείρονται από την ανάγκη διαλειτουργικότητας ανάμεσα σε συστήματα, τα οποία έχουν αναπτυχθεί σε διαφορετικές πλατφόρμες. Οι Υπηρεσίες Ιστού αποτελούν την τεχνολογία που επιτρέπει μέσω χαλαρής ζεύξης την επικοινωνία αυτή μεταξύ ετερογενών συστημάτων, και για τον λόγο αυτό έχουν υιοθετηθεί σε μεγάλο βαθμό από πληθώρα επιχειρήσεων και οργανισμών.
Ένα μεγάλο πλεονέκτημα των ΥΙ είναι πως επιτρέπουν την ολοκλήρωση μεμονωμένων ΥΙ, από διαφορετικούς παρόχους, έτσι ώστε τελικά να παρέχουν τη βέλτιστη εμπειρία στους χρήστες, μέσω υπηρεσιών προστιθέμενης αξίας. Επιπλέον, διάφορες ποιοτικές παράμετροι (όπως ασφάλεια, απόδοση κ.ά.), αποτελούν βασικά κριτήρια στην αξιολόγηση των ΥΙ και της δυνατότητας που έχουν στο να συμμετέχουν σε ευρύτερες συνθέσεις.
Τόσο σαν μεμονωμένες υπηρεσίες όσο και σαν μέλη μιας ευρύτερης σύνθεσης, οι ΥΙ μπορούν να προσφέρουν σημαντικά οφέλη στον τρόπο με τον οποίο οι επιχειρήσεις επικοινωνούν με τους καταναλωτές και τους συνεργάτες τους, αλλά και να βελτιώσουν τον σχεδιασμό και την προβολή των επιχειρηματικών λειτουργιών τους.
Στο κεφάλαιο αυτό έγινε αναφορά στις υπάρχουσες κατηγορίες ΥΙ, στις τεχνικές επιλογής και σύνθεσης αλλά και στους ειδικότερους τομείς της επιστήμης της πληροφορικής, στους οποίους έχουν εφαρμογή οι ΥΙ, όπως είναι το Διαδίκτυο των Αντικειμένων.
12. Τεστ αξιολόγησης
Σημείωση: Η διαβάθμιση δυσκολίας των κριτηρίων αξιολόγησης δίνεται με το πλήθος των αναγραφόμενων αστερίσκων.13. Βιβλιογραφία
Alrifai, M., Skoutas, D., & Risse, T. (2010). Selecting skyline services for QoS-based web service composition. In Proceedings of the 19th international conference on World Wide Web (pp. 11-20). ACM.
Da Xu, L., He, W., & Li, S. (2014). Internet of Things in industries: A survey. Industrial Informatics, IEEE Transactions on, 10(4), 2233-2243.
Martin, D., Paolucci, M., McIlraith, S., Burstein, M., McDermott, D., McGuinness, D., ... & Sycara, K. (2005). Bringing semantics to web services: The OWL-S approach. In Semantic Web Services and Web Process Composition, Springer Berlin Heidelberg, pp. 26-42.
Farrag, T. A., Saleh, A. I., & Ali, H. A. (2013). Toward SWSs discovery: mapping from wsdl to owl-s based on ontology search and standardization engine. Knowledge and Data Engineering, IEEE Transactions on, 25(5), 1135-1147.
Fielding, R. (2000). Architectural Styles and The Design of Network-based Software Architectures. PhD Thesis, University of California, Irvine
Guinard, D., Trifa, V., Mattern, F., & Wilde, E. (2011). From the internet of things to the web of things: Resource-oriented architecture and best practices. In Architecting the Internet of Things, pp. 97-129. Springer Berlin Heidelberg.
Hatzi, O., Vrakas, D., Nikolaidou, M., Bassiliades, N., Anagnostopoulos, D., & Vlahavas, L. (2012). An integrated approach to automated semantic web service composition through planning. Services Computing, IEEE Transactions on, 5(3), 319-332.
Papazoglou, M. P., Traverso, P., Dustdar, S., & Leymann, F. (2008). Service-oriented computing: a research roadmap. International Journal of Cooperative Information Systems, 17(02), 223-255
Pautasso, C. (2014). RESTful web services: principles, patterns, emerging technologies. In Web Services Foundations, Springer New York, pp. 31-51.
Pautasso, C., Wilde, E., & Alarcon, R. (2014). REST: Advanced Research Topics and Practical Applications. Springer.
Pimenidis, E., & Georgiadis, C. K. (2010). Web services for rural areas—Security challenges in development and use. Computers and electronics in agriculture, 70(2), 348-354.
Sheng, Q. Z., Qiao, X., Vasilakos, A. V., Szabo, C., Bourne, S., & Xu, X. (2014). Web services composition: A decade’s overview. Information Sciences, 280, 218-238.
Vesyropoulos, N., & Georgiadis, C. K. (2013). Web of things: understanding the growing opportunities for business transactions. In Proceedings of the 6th Balkan Conference in Informatics, ACM, pp. 267-274.
Wang, P., Ding, Z., Jiang, C., & Zhou, M. (2014). Automated web service composition supporting conditional branch structures. Enterprise Information Systems, 8(1), 121-146.
Weerawarana, S., Curbera, F., Leymann, F., Storey, T., & Ferguson, D. F. (2008). Αρχιτεκτονική Πλατφόρμας Υπηρεσιών Ιστού, Κλειδάριθμος, Επιστ. επιμ. Ελλ. εκδ. Χ. Κ. Γεωργιάδης, αρχική έκδοση: Web services platform architecture. Prentice Hall PTR 2005.